package org.lisy.java.oop;

/**
 * 基础语法
 * 
 * @author lisy
 */
public class BaseGrammar {
	
	/**
	 * 对象：对象是类的一个实例，有状态和行为
	 * 类：类是一个模板，它描述一类对象的行为和状态
	 * 内部类：将一个类定义在另一个类里面，对立面那个类就称为内部类
	 * 	1.内部类可以直接访问外部类的成员，包括私有成员
	 * 	2.外部类要访问内部类中的成员就必须建立内部类的对象
	 * 方法：方法就是行为，一个类可以有很多方法
	 * 实例变量：每个对象都有独特的实例变量，对象的状态由这些实例变量的值决定
	 */
	public static void main(String[] args) {
		
		/**
		 * Java修饰符
		 * 	1.访问控制修饰符 : public , protected, default, private
		 * 	2.非访问控制修饰符 : final, abstract, static, synchronized
		 */
		
		/**
		 * Java变量
		 * 	1.局部变量 - 栈内存
		 * 	2.类变量（静态变量）- 方法区
		 * 	3.成员变量（非静态变量） - 堆内存
		 */
		
		/**
		 * Java 方法
		 * 	1.修饰符：修饰符，这是可选的，告诉编译器如何调用该方法，定义了该方法的访问类型
		 * 	2.返回值类型 ：方法可能会返回值
		 * 	3.方法名：是方法的实际名称。方法名和参数表共同构成方法签名
		 * 	4.参数类型：参数像是一个占位符。当方法被调用时，传递值给参数
		 * 	5.方法体：方法体包含具体的语句，定义该方法的功能
		 */
		
		/**
		 * Java 值传递
		 * 1. 值传递（pass by value）是指在调用函数时将实际参数复制一份传递到函数中，这样在函数中如果对参数进行修改，将不会影响到实际参数
		 * 2. 引用传递（pass by reference）是指在调用函数时将实际参数的地址直接传递到函数中，那么在函数中对参数所进行的修改，将影响到实际参数
		 * 
		 * 求值策略（Evaluation strategies） - 基于如何处理给函数的实际参数，分为严格的和非严格的，多数编程语言对函数都使用严格求值
		 * 1. 传值调用（值传递）
		 * 2. 传引用调用（引用传递）
		 * 3. 传共享对象调用（共享对象传递）
		 */
		
		/**
		 * JAVA的压缩包：JAR
		 * 	1.方便项目的携带
		 * 	2.方便与使用，只要在classpath配置路径即可
		 * 	3.数据库驱动，SSH框架等都是jar的体现
		 */
	}
}
